package com.itlaoqi.thread.threadpool;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class ThreadPoolSample1 {

    public static void main(String[] args) {
        //调度器对象
        //ExecutorService 用户管理线程池
        ExecutorService threadPool = Executors.newFixedThreadPool(3);
        //定长线程池总数，空闲线程池用于执行任务，如果线程都在使用后任务处于等待状态
        //执行任务后再执行后续的任务。
        // 如果任务处于等待的状态，备选的等待宣发默认为FIFO(先进先出) LIFO（后进先出）
        //执行任务后再执行后续的任务。
        for (int i = 0; i < 1000; i++) {
            final int index = i;
            threadPool.execute(new Runnable() {
                @Override
                public void run() {
                    System.out.println(Thread.currentThread().getName() + ":" + index);
                }
            });
        }
        //shutdown() 代表关闭线程池。等待其他线程完成
        //shutdownNow() 
        threadPool.shutdown();
    }
}
